import os
from dotenv import load_dotenv

load_dotenv()

class Config:
    DEBUG = os.getenv('DEBUG', 'False').lower() == 'true'
    SECRET_KEY = os.getenv('SECRET_KEY', '123456')

    # 知识库配置
    INPUT_DIR = os.getenv('INPUT_DIR', os.path.join(os.getcwd(), 'input'))
    KNOWLEDGE_BASE_PATH = os.getenv('KNOWLEDGE_BASE_PATH', os.path.join(os.getcwd(), 'knowledge'))

    # 数据库配置
    DB_CONFIG = {
        'user': os.getenv('DB_USER', 'root'),
        'password': os.getenv('DB_PASSWORD', '000000'),
        'host': os.getenv('DB_HOST', 'localhost'),
        'port': int(os.getenv('DB_PORT', 3306)),
        'database': os.getenv('DB_NAME', 'test'),
        'charset': os.getenv('DB_CHARSET', 'utf8')
    }

    # LLM配置
    # LLM_CONFIG = {
    #     'base_url': os.getenv('LLM_BASE_URL', 'https://api.lkeap.cloud.tencent.com/v1'),
    #     'api_key': os.getenv('LLM_API_KEY', 'sk-PgLREORptFUas75FSFdfZ1Ho41nkv7r9q1SjX0jm3fS8fSzq'),
    #     'model': os.getenv('LLM_MODEL', 'deepseek-v3'),
    #     'temperature': 0.2
    # }
    LLM_CONFIG = {
        'base_url': os.getenv('LLM_BASE_URL', 'https://dashscope.aliyuncs.com/compatible-mode/v1'),
        'api_key': os.getenv('LLM_API_KEY', 'sk-079868c30081417fb54343c6919ba60d'),
        'model': os.getenv('LLM_MODEL', 'deepseek-v3'),
        'temperature': 1.3
    }

    # 大模型最大思考轮次
    MAX_TURNS = int(os.getenv('MAX_TURNS', 5))

    # 日志配置
    LOG_DIR = os.getenv('LOG_DIR', os.path.join(os.getcwd(), 'logs'))
    LOG_TO_CONSOLE = True     # 是否输出到控制台
    LOG_LEVEL = os.getenv('LOG_LEVEL', 'INFO')
    LOG_FILE = os.path.join(LOG_DIR, "{time:YYYY-MM-DD}/{time:YYYY-MM-DD_HH}.log")

    # 构建提示模板，指导LLM如何处理问题
    prompt_template = """
            你是一个专业的数据分析师。根据用户问题了解他的意图进行回答，并遵循以下规则回答：
            1. 首先判断用户问题意图，若不是数据相关则不用调取工具，直接回答问题
            2. 若与数据相关则根据用户问题，使用test库，生成SQL，将结果按用户要求格式化
            3. 生成SQL前检查知识库内容，确认参数无错别字，SQL必须包含库名
            4. 只根据知识库内容回答，未知问题回答不知道
            5. 输出格式精美，使用适当的分隔符、表情和符号美化

            用户问题:
            """

if __name__ == '__main__':
    c = Config()
    print(c.INPUT_DIR)
    print(c.KNOWLEDGE_BASE_PATH)